package models;

import boardGenerator.GameDifficultyLevel;

/**
 * Clase Configuracion
 * En esta clase esta espicificada la configuracion
 * del juego actual, la dificultad, el generador de tableros
 * el nombre del jugador y otros
 */
public class Configuration{
    private GameDifficultyLevel difficulty;
    private String namePlayer;
    private int generator;
    
    /**
     * Constructor de la clase
     * por defecto dificultad Facil
     * generador sudoku 1
     */
    public Configuration(){
        difficulty = GameDifficultyLevel.EASY;
        namePlayer = "Jugador 1";
        generator = SudokuModelo.Model1;        
    }
        
    /**
     * determina el tipo de dificultad de la partida
     * @param typeDifficulty "String"
     * tipos de dificultad son:
     * EASY
     * MODERATE
     * HARD
     */
    public void setDifficulty(String typeDifficulty){
        switch (typeDifficulty) {
            case "EASY":difficulty = GameDifficultyLevel.EASY;break;
            case "HARD":difficulty = GameDifficultyLevel.HARD;break;
            case "MODERATE":difficulty = GameDifficultyLevel.MODERATE;break;
        }
    }
    
    /**
     * retorna el tipo de dificultad
     * @return difficulty
     */
    public GameDifficultyLevel getDifficulty(){
        return difficulty;
    }
    
    /**
     * determina el nombre del jugador
     * @param newName 
     */
    public void setNamePlayer(String newName){
        namePlayer = newName;
    }
    
    /**
     * retorna el nombre del jugador
     * @return "String"
     */
    public String getNamePlayer(){
        return namePlayer;
    }
       
    /**
     * determina que generador de tablero utilizar
     * @param newGenerator "int"
     * 1: generador1
     * 2: generador2
     */
    public void setGenerator(int newGenerator){
        generator = newGenerator;
    }
    
    /**
     * retorna el tipo de generador utilizado
     * @return "int"
     */
    public int getGenerator(){
        return generator;
    }
}
